<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title>软件生存期模型特点</title>
  <style>
    body {
      font-family: "Microsoft YaHei", sans-serif;
      line-height: 1.6;
      margin: 40px;
      background-color: #f9f9f9;
      color: #333;
    }
    h1 {
      text-align: center;
      color: #2c3e50;
    }
    h2 {
      color: #2980b9;
    }
    section {
      background: #fff;
      padding: 20px;
      margin-bottom: 20px;
      border-left: 5px solid #3498db;
      box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }
    ul {
      margin-top: 5px;
    }
  </style>
</head>
<body>
  <h1>软件生存期模型特点笔记</h1>

  <section>
    <h2>1. 瀑布模型（Waterfall Model）</h2>
    <ul>
      <li>顺序执行：需求 → 设计 → 编码 → 测试 → 运维。</li>
      <li>阶段清晰，每一阶段输出作为下一阶段输入。</li>
      <li>强调文档，每阶段需签署确认。</li>
      <li><strong>优点：</strong>结构清晰、便于管理。</li>
      <li><strong>缺点：</strong>需求变更代价大，缺乏灵活性。</li>
    </ul>
  </section>

  <section>
    <h2>2. 螺旋模型（Spiral Model）</h2>
    <ul>
      <li>强调风险管理和迭代开发。</li>
      <li>每轮迭代包括目标设定、风险评估、开发与验证、评审。</li>
      <li>适合大型、复杂项目。</li>
      <li><strong>优点：</strong>风险可控、灵活应对变化。</li>
      <li><strong>缺点：</strong>成本高、难度大，对开发人员要求高。</li>
    </ul>
  </section>

  <section>
    <h2>3. 进化模型（Evolutionary Model）</h2>
    <ul>
      <li>原型快速构建，逐步演进。</li>
      <li>用户参与反馈，反复修改完善。</li>
      <li>没有严格的阶段划分。</li>
      <li><strong>优点：</strong>适应需求变化，用户满意度高。</li>
      <li><strong>缺点：</strong>结构可能混乱，难以控制进度与成本。</li>
    </ul>
  </section>

  <section>
    <h2>4. 原型模型（Prototype Model）</h2>
    <ul>
      <li>快速搭建原型，获取用户反馈。</li>
      <li>用于明确和验证需求。</li>
      <li>原型可抛弃或逐步演化为正式系统。</li>
      <li><strong>优点：</strong>减少需求误解，用户参与度高。</li>
      <li><strong>缺点：</strong>过度依赖原型，后期结构难维护。</li>
    </ul>
  </section>

  <section>
    <h2>5. 增量模型（Incremental Model）</h2>
    <ul>
      <li>将系统分为多个“增量”，逐步构建。</li>
      <li>每个增量可独立交付、部署。</li>
      <li><strong>优点：</strong>早期交付可用软件，便于控制风险。</li>
      <li><strong>缺点：</strong>增量间接口复杂，对架构设计要求高。</li>
    </ul>
  </section>

  <section>
    <h2>6. 极限编程（Extreme Programming, XP）</h2>
    <ul>
      <li>强调持续反馈、测试驱动开发、结对编程、持续集成。</li>
      <li>用户持续参与，灵活调整需求。</li>
      <li><strong>优点：</strong>应对快速变化，提升质量。</li>
      <li><strong>缺点：</strong>对协作和技术要求高。</li>
    </ul>
  </section>

  <section>
    <h2>7. Rational统一过程（RUP）</h2>
    <ul>
      <li>面向对象、基于UML的开发方法。</li>
      <li>分为初始、细化、构建、交付四阶段。</li>
      <li>强调用例驱动、架构优先、迭代开发。</li>
      <li><strong>优点：</strong>结构规范，适合大型项目。</li>
      <li><strong>缺点：</strong>过程复杂，学习成本高。</li>
    </ul>
  </section>

  <section>
    <h2>8. 微软产品开发周期模型（MSF）</h2>
    <ul>
      <li>强调团队协作、风险管理、灵活流程。</li>
      <li>包含团队模型、流程模型、治理模型等。</li>
      <li>非线性流程，注重迭代与反馈。</li>
      <li><strong>优点：</strong>灵活，适应商业变化。</li>
      <li><strong>缺点：</strong>不适合流程高度严格的项目。</li>
    </ul>
  </section>
</body>
</html>